home *** CD-ROM | disk | FTP | other *** search
- property pModelA, pModelB, pAxis, pangle, pStrength, pDamping, pAngularDashpot, pName, pcamera, pMember, pSprite, pHavok, pCreated, spriteNum
- global gAngularDashpotNumber
-
- on beginSprite me
- pSprite = sprite(me.spriteNum)
- pHavok = pSprite.pHavok
- pMember = pSprite.member
- pcamera = pSprite.camera
- if voidp(pModelA) then
- pModelA = pMember.model[1].name
- end if
- if voidp(pModelB) then
- pModelB = pMember.model[2].name
- end if
- pAxis.normalize()
- pCreated = 0
- end
-
- on enterFrame me
- global gRacers
- if not pCreated then
- if not ("__None__" = pModelB) then
- pAngularDashpot = pHavok.makeAngularDashpot(pName, pModelA, pModelB)
- else
- repeat with i = 1 to gRacers.count
- pAngularDashpot = pHavok.makeAngularDashpot("carModelDashpot_" & i, "carmodelplaceholder_" & i)
- pAngularDashpot.strength = pStrength
- pAngularDashpot.damping = pDamping
- pAngularDashpot.rotation = [pAxis, pangle]
- end repeat
- end if
- pCreated = 1
- end if
- end
-
- on endSprite me
- end
-
- on isOKToAttach aScript, aSpriteType, aSpriteNum
- case aSpriteType of
- #graphic:
- case sprite(aSpriteNum).member.type of
- #shockwave3d:
- if aScript.getmodels(sprite(aSpriteNum).member, []).count > 1 then
- return 1
- else
- return 0
- end if
- #text:
- if sprite(aSpriteNum).member.displayMode = #mode3d then
- return 1
- else
- return 0
- end if
- end case
- #script:
- return 0
- end case
- return 0
- end
-
- on getPropertyDescriptionList aScript
- if the currentSpriteNum > 0 then
- tGPDList = [:]
- tList = []
- tList = aScript.getmodels(sprite(the currentSpriteNum).member, tList)
- if voidp(gAngularDashpotNumber) then
- gAngularDashpotNumber = 0
- end if
- gAngularDashpotNumber = gAngularDashpotNumber + 1
- pName = "AngularDashpot" & gAngularDashpotNumber / 2
- tGPDList[#pName] = [#comment: "Name", #format: #string, #default: pName]
- tGPDList[#pModelA] = [#comment: "Model A", #format: #string, #range: tList, #default: tList[1]]
- tList.addAt(1, "__None__")
- tGPDList[#pModelB] = [#comment: "Model B", #format: #string, #range: tList, #default: tList[1]]
- tGPDList[#pAxis] = [#comment: "Rotation Axis", #format: #vector, #default: vector(0, 0, 1)]
- tGPDList[#pangle] = [#comment: "Rotation Angle", #format: #float, #default: 0]
- tGPDList[#pStrength] = [#comment: "Strength", #format: #float, #default: 1]
- tGPDList[#pDamping] = [#comment: "Damping", #format: #float, #default: 0.10000000000000001]
- return tGPDList
- end if
- end
-
- on getBehaviorTooltip aScript
- tString1 = "Angular Dashpot" & RETURN & RETURN
- tString2 = "-" && "Type" && ":" && "Local Action" & RETURN
- tString3 = "-" && "Usage" && ":" && "Drop this onto a scene with physics"
- return tString1 & tString2 & tString3
- end
-
- on getBehaviorDescription aScript
- tString1 = "ANGULAR DASHPOT" & RETURN & RETURN & "PARAMETERS:" & RETURN & "- Name" & RETURN & "- Model A" & RETURN & "- Model B" & RETURN & "- Axis" & RETURN & "- Angle" & RETURN & "- Strength" & RETURN & "- Damping" & RETURN & "PERMITTED SPRITE TYPES:" & RETURN & "- Shockwave 3D"
- return tString1
- end
-
- on getmodels me, amember, aList
- repeat with j = 1 to amember.model.count
- if string(amember.model[j]) contains "model" then
- aList.add(amember.model[j].name)
- end if
- end repeat
- return aList
- end
-